Palm or handheld computers have offered very limited functionality and have been restricted to being personal organizers. These watered-down computers are not compatible with programs on larger desktop and notebook computers, but rely on proprietary operating systems and programs to ensure small memory footprint and quick response time, even on low-power microprocessors. These restrictions have limited the usefulness of the personal organizers, as they operate stand alone and cannot readily share data with other computers.
Some handheld devices are capable of interacting with enterprise business applications running remotely on enterprise servers via a network, such as the internet. The two platforms were linked via one or more communication paths usually through a host server, including paths through a modem, a parallel port, a serial port, or a cradle assembly. Further, various wireless communication techniques, such as radio or infrared communication may be used. In the event that a cradle was used, when the handheld computer was in the cradle and actively connected to the host computer, the handheld computer typically entered a mode to update data in the host computer and itself.
A major problem exists in the current methods of synchronizing data between the enterprise server and the palmtop or handheld computer. For instance, certain data such as calendar information, appointment information, and notes, among others, would generally be kept on the server, which may be networked so that other handhelds or workstations may remotely update the calendar information, appointment information, and notes. The same information was also kept on the palmtop or handheld computer for the user to review and update when mobile. However, if the user was traveling and information was entered on the server or on a remote station on a network server machine while the user was not at his or her office, or if the user entered information on the local version of the data in the palmtop or handheld computer, the information contained in the server and the palmtop or handheld computer would become non-coherent, leading to undesirable problems such as meeting conflicts and miscommunications.
Prior art methods synchronize a list of records, such as contact and appointments. They are not shared among different users and/or user accounts and are only visible to the owner and can only be modified buy the owner.
Some enterprise applications can handle very complex data for enterprises targeted for different areas, such as Field Service and Sales Force Automation, and more. The data models in applications are much more rich than those which can be represented by list of records. Plus, the data may have the following visibilities:                1) Visible only to a particular position (each person may have one or more positions in an organization),        2) Visible to a group of persons, such as the persons in the same sales team, or in the same account team,        3) Visible to management positions,        4) Visible to a particular organization in a company,        5) Visible across all organizations in a company.        
The change in the visibility of a particular piece of data leads to the changes of the scope of people who can see and change it. If more than one person can change it, the prior art methods of synchronization failed to keep the data coherency among all the persons who can see and modify it.
The prior resolutions of the data synchronization problem were generally very time consuming and tedious and therefore reduced the effectiveness of the palmtop/desktop combination. One solution was to limit the accessibility of files such that only files physically residing with the user were the master. However, this solution dictated that no changes could be made to the other system without the danger of losing those changes. Thus, while the palmtop/desktop combination of computers existed, the use of the combination was not popular due to the requirement that the user had to manually synchronize the data on both platforms. Therefore, the problem of synchronization limited the potential of the palmtop or handheld computer market.
One problem encountered by the current generation of handheld devices and their add-on connectivity solutions is that the connectivity solutions rely on batch mode rather than real-time oriented approaches to data coherency. Because the server and the handheld device typically became disconnected and incommunicado when the user goes mobile, the data synchronization problem becomes intractable. During the mobile period, the creation, the deletion and the modification of data causes incoherency that often results in conflicts reconcilable only through manual intervention by the user. These conflicts would arise because the server and handheld device were unable to communicate changes in their data until they were reconnected using a serial, parallel or modem connection.
Most handhelds are connected to the network through a cradle connected to a desktop or laptop computer. Synchronization in prior art systems usually involves synchronizing the desktop or laptop with the server and then synchronizing the handheld with the desktop or laptop. This is especially inefficient if the user desires to synchronize the handheld with the server without synchronizing with the desktop or laptop.